arm: dma_alloc_coherent: malloc() -> memalign()
authorKuo-Jung Su <[email protected]>
Mon, 29 Jul 2013 05:51:43 +0000 (13:51 +0800)
committerAlbert ARIBAUD <[email protected]>
Sat, 14 Sep 2013 10:08:00 +0000 (12:08 +0200)
Even though the MMU/D-cache is off, some DMA engines still
expect strict address alignment.

For example, the incoming Faraday FTMAC110 & FTGMAC100 ethernet
controllers expect the tx/rx descriptors should always be aligned
to 16-bytes boundary.

Signed-off-by: Kuo-Jung Su <[email protected]>
CC: Albert ARIBAUD <[email protected]>
arch/arm/include/asm/dma-mapping.h

index 009863beec555f72410cd3c893855ac7f1c4f7b4..55a4e266a0a7078dc8f5390647b51019b8c78962 100644 (file)
@@ -16,7 +16,7 @@ enum dma_data_direction {
 
 static void *dma_alloc_coherent(size_t len, unsigned long *handle)
 {
-       *handle = (unsigned long)malloc(len);
+       *handle = (unsigned long)memalign(ARCH_DMA_MINALIGN, len);
        return (void *)*handle;
 }